$(function () {
    //加载树形结构
    loadModuleInfo();
});

//定义树形结构对象
var zTreeObj;

function loadModuleInfo() {
    //zTree的参数配置
    var setting = {
        //使用复选框
        check: {
            enable: true
        },
        //使用简单的JSON数据
        data: {
            simpleData: {
                enable: true
            }
        },
        //绑定函数
        callback:{
            //onCheck函数：当checkbox/radio被选中或取消选中时触发的函数
            onCheck: zTreeOnCheck
        }


    };

    //数据
    //通过ajax查询资源列表
    $.ajax({
        type:"get",
        //查询所有资源列表时，传递角色Id,查询当前角色对应的已经授权的资源
        url:ctx + "/module/queryAllModules",
        data: {roleId:$("[name='roleId']").val()},
        dataType:"json",
        success:function (data) { //data:查询到的资源列表
            //加载zTree插件
            zTreeObj = $.fn.zTree.init($("#test1"),setting,data);
        }
    });
}

//当checkbox/radio被选中或取消选中时触发的函数
function zTreeOnCheck(event, treeId, treeNode) {
    //alert(treeNode.tId + ", " + treeNode.name + "," + treeNode.checked);
    //getCheckedNodes:获取所有被勾选的结点集合.
    //如果checked=true，表示获取勾选的节点；如果checked=false，表示获取未勾选的节点。
    var nodes = zTreeObj.getCheckedNodes(true);
    // console.log(nodes);

    //获取所有的资源的id值 mIds=1&mIds=2&mIds=3...
    if (nodes.length > 0){
         var mIds = "mIds=";
         for (var i = 0; i < nodes.length; i++){
             if (i < nodes.length - 1){
                 mIds += nodes[i].id + "&mIds=";
             }else {
                 mIds += nodes[i].id;
             }
         }
        console.log(mIds);
    }

    //获取角色需要授权的角色Id的值(隐藏域)
    var roleId = $("[name='roleId']").val();

    //发送ajax请求执行角色的授权操作
    $.ajax({
        type: "post",
        url: ctx + "/role/addGrant",
        data: mIds + "&roleId=" + roleId,
        dataType: "json",
        success:function (data) {
            console.log(data);
        }
    });
}